package com.zenithmind.task.pojo.entity;

import com.baomidou.mybatisplus.annotation.*;
import com.zenithmind.common.base.BaseEntity;
import lombok.Data;
import lombok.EqualsAndHashCode;

import java.math.BigDecimal;

/**
 * 任务模板实体类
 * 
 * @author ZenithMind Team
 * @since 2025-01-09
 */
@Data
@EqualsAndHashCode(callSuper = true)
@TableName("task_template")
public class TaskTemplate extends BaseEntity {

    /**
     * 模板名称
     */
    @TableField("name")
    private String name;

    /**
     * 模板描述
     */
    @TableField("description")
    private String description;

    /**
     * 模板类型：1-个人，2-团队，3-系统
     */
    @TableField("type")
    private Integer type;

    /**
     * 模板分类
     */
    @TableField("category")
    private String category;

    /**
     * 任务标题模板
     */
    @TableField("title_template")
    private String titleTemplate;

    /**
     * 任务描述模板
     */
    @TableField("description_template")
    private String descriptionTemplate;

    /**
     * 默认优先级
     */
    @TableField("default_priority")
    private Integer defaultPriority;

    /**
     * 默认任务类型
     */
    @TableField("default_task_type")
    private Integer defaultTaskType;

    /**
     * 默认分类ID
     */
    @TableField("default_category_id")
    private String defaultCategoryId;

    /**
     * 默认标签
     */
    @TableField("default_tags")
    private String defaultTags;

    /**
     * 预估工时
     */
    @TableField("estimated_hours")
    private BigDecimal estimatedHours;

    /**
     * 默认提醒设置（JSON格式）
     */
    @TableField("default_reminder")
    private String defaultReminder;

    /**
     * 子任务模板（JSON格式）
     */
    @TableField("subtask_templates")
    private String subtaskTemplates;

    /**
     * 检查清单模板（JSON格式）
     */
    @TableField("checklist_template")
    private String checklistTemplate;

    /**
     * 自定义字段模板（JSON格式）
     */
    @TableField("custom_fields_template")
    private String customFieldsTemplate;

    /**
     * 创建者ID
     */
    @TableField("creator_id")
    private String creatorId;

    /**
     * 创建者名称
     */
    @TableField("creator_name")
    private String creatorName;

    /**
     * 是否系统模板
     */
    @TableField("is_system")
    private Integer isSystem;

    /**
     * 是否公开
     */
    @TableField("is_public")
    private Integer isPublic;

    /**
     * 使用次数
     */
    @TableField("usage_count")
    private Integer usageCount;

    /**
     * 收藏次数
     */
    @TableField("favorite_count")
    private Integer favoriteCount;

    /**
     * 评分
     */
    @TableField("rating")
    private BigDecimal rating;

    /**
     * 评分次数
     */
    @TableField("rating_count")
    private Integer ratingCount;

    /**
     * 排序权重
     */
    @TableField("sort_order")
    private Integer sortOrder;

    /**
     * 状态：0-禁用，1-启用
     */
    @TableField("status")
    private Integer status;

    /**
     * 备注
     */
    @TableField("remark")
    private String remark;
}
